Skip to content

chore: add Apache-2.0 and NOTICE, retire the docs that outlived their tools - #19

Merged
yujiezhang-ops merged 1 commit into
mainfrom
chore/license-and-doc-hygiene
Aug 4, 2026
Merged

chore: add Apache-2.0 and NOTICE, retire the docs that outlived their tools#19
yujiezhang-ops merged 1 commit into
mainfrom
chore/license-and-doc-hygiene

Conversation

@yujiezhang-ops

Copy link
Copy Markdown
Collaborator

处理上一轮文档审查的全部发现。四个决策点已确认:Apache-2.0、删除战略文档、删除两份 concept、文档改写指向 CI。

LICENSE + NOTICE

此前完全没有许可证文件。公开仓库里这等于「保留所有权利」——没人能合法 fork、修改,或 go get 一个 module path 已经是 github.com/MaimoryLab/OneAgent 的仓库。选 Apache-2.0 是因为它有明确的专利授权和商标条款。

NOTICE 是另一半。docs/distribution-compliance-policy.md:30 一直把第三方许可清单列为发布前置条件,但生成它的 cmd/oneagent-release 已在 23805b0 移除,义务因此没有实现手段。

每一条都是从磁盘读出来核对的,不是推断:

  • Go 模块go list -deps -tags wails ./cmd/oneagent-desktop 取真正链进二进制的 5 个,逐个读 LICENSE 头确认类型(其中 go-isatty 是 MIT、golang.org/x/sys 是 BSD-3-Clause——这两个的 LICENSE 首行不写许可名,得看正文)
  • npm 包node_modules 里各自 package.json 的实际版本与 license(lucide-reactISC 而非 MIT)
  • 运行时runtimes.lock.json 对齐,并明确区分「随包分发」与「运行时下载、不再分发」——Node.js、uv 和 Agent 包属于后者,其中 @anthropic-ai/claude-code 是 Proprietary,只在用户明确请求时安装
  • 商标覆盖 8 个 Agent 标识,沿用 agents.tsx 已记录的 nominative use 立场

frontend/package.json 补上缺失的 license 字段。

删除三份文档

docs/agent-installer-target-versions.md —— 内部战略:4 个未公开转化率 KPI、SSO/统一账单规划、以及一个托管模型网关,而 product-boundary-baseline.md:107 明确把统一网关列为不做。同时公开两者等于既承诺又否认同一件事。

两份 concept 文档 —— 生成过程记录:一份含私有图像代理端点,两份合计 17 个图片链接全部指向 gitignore 的 output/,公开后读者只会看到 17 张破图。视觉决策已经落地在 frontend/ 里。

12 个文档的死命令

删除是刻意的(23805b0build-artifacts.yml 替代),所以改文档而不是恢复工具。

README 和 CLAUDE.md 改成描述实际存在的 workflow;历史文档保留原有结论、加注说明命令只是背景。

一个额外处理:把这些历史文档里的命令块从 ```bash 改成 ```text。仅在文件头加注是不够的——读者滚到一个 shell 代码块,是会直接点运行的。

README 另外删掉 task test:native,任何 Taskfile 都没有这个 target(只有 test:gotest:e2e)。

ADR 撞号

两份都自称 ADR-006。公开站那份改为 ADR-009,因为 ADR-008:11 的 Supersedes 指向的是「多 Profile」那一份(我核对过:凭据方案只在多 Profile 那份里)。ADR-006 现在第一行就说明凭据部分已被 ADR-008 取代——此前这句话在第 69 行。

一处修正:我上轮报告说「ADR-001 到 006 没有 Status 行」是错的。它们有 ## Status 段落,只是用标题而非行内格式,值分别是 Accepted / Implemented。所以这一项不需要修,我没有去「修」一个不存在的问题。

顺带修回一个回归

frontend/dist/.keepde3ed69 又删掉了,全新克隆上 go vet 因此再次失败于 pattern all:frontend/dist: no matching files found——正是 #16 修过的问题。看起来是本地 rm -rf frontend/distgit add -A 带走的。已恢复。

cc-switch 笔记

保留全部技术结论,但把两处对具名个人项目的贬义判断(:79「容易让人误解形象」、:90「装了没用」)改写为它们实际要表达的方法论要点。许可风险本来就低(MIT、已署名、片段简短),这里处理的是社区关系。

验证

go vet ./... 无输出、go test -race ./... 全过、前端 pnpm run build 通过、pnpm run test 159/159。所有相对文档链接解析正常,无残留死链。

需要你知道的一点

git 历史里仍能翻出已删除的内容。 公开后 git log -p 可以看到 agent-installer-target-versions.md 的全文和那个私有端点。彻底移除需要改写历史(git filter-repo + force-push),会影响所有协作者的本地仓库,所以我没有擅自做。

如果那份战略文档的 KPI 和托管网关规划敏感到不能被翻出来,公开之前需要单独处理这件事。我可以在你确认后执行。

🤖 Generated with Claude Code

…heir tools

The repository had no LICENSE at all, which in a public repository means
"all rights reserved": nobody could legally fork, modify or `go get` a
module whose path is already github.com/MaimoryLab/OneAgent. Apache-2.0 was
chosen for its explicit patent grant and trademark clause.

NOTICE is the other half. distribution-compliance-policy.md has always
required a third-party licence manifest as a release precondition, but the
tool that generated it (cmd/oneagent-release) was removed in 23805b0, so the
obligation had no implementation. Every entry is read from disk rather than
assumed: the five Go modules actually linked into the desktop binary via
`go list -deps`, the five npm packages in the bundle, and the two runtimes
from runtimes.lock.json. The trademark section covers the eight Agent marks
in frontend/src/components/icons/assets, which agents.tsx already documents
as nominative use.

Three documents are removed rather than edited. agent-installer-target-versions.md
was internal strategy -- four unpublished conversion targets, SSO and unified
billing plans, and a hosted model gateway that product-boundary-baseline.md
explicitly lists as out of scope, so publishing both would have promised and
denied the same thing. The two concept documents were generation logs: one
carried a private image-proxy endpoint, and between them seventeen image
links point into the gitignored output/ directory, so they would have
rendered as broken images to any reader.

Twelve documents cited cmd/oneagent-release, cmd/oneagent-rc or
cmd/oneagent-provider-smoke, none of which exist. Removing them was
deliberate -- 23805b0 replaced them with build-artifacts.yml -- so the docs
are corrected rather than the tools restored. README and CLAUDE.md now
describe the workflow that runs; historical documents keep their conclusions
and gain a note saying the commands are background. Their command blocks are
retagged from `bash` to `text`, because a header note does not stop someone
scrolling to a shell block and running it. README also loses `task
test:native`, a target no Taskfile defines.

Two ADRs both claimed number 006. The public-site one becomes ADR-009, since
ADR-008's Supersedes line refers to the multi-profile one; ADR-006 now says
on its first line that its credential half is superseded, which previously
appeared only sixty lines down.

frontend/dist/.keep is restored: de3ed69 deleted it again, which re-broke
`go vet` on a fresh clone in exactly the way #16 fixed.

The cc-switch notes keep their findings but drop two conclusions that read
as disparaging a named individual's project; both are rewritten as the
methodological point they were actually making.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@yujiezhang-ops
yujiezhang-ops force-pushed the chore/license-and-doc-hygiene branch from 4320f38 to 14d1586 Compare August 4, 2026 12:00
@yujiezhang-ops

Copy link
Copy Markdown
Collaborator Author

CI 第一次跑失败,原因值得记一下:go vetpattern all:frontend/dist: no matching files found

不是本 PR 的改动引起的——frontend/dist/.keep 被 main 上最新的 de3ed69 又删掉了一次(父提交里还在),正是 #16 修过的那个问题。看起来是本地清掉 dist/git add -A 带走的。

我第一次恢复它时踩了同一个坑:先 touchgit add 了,但随后跑 pnpm run build 重建 dist/ 覆盖掉那个文件,最后提交前的 git add -A 把它的删除也一起暂存了。已重新加入并 amend,用全新克隆验证过 go vet 通过,CI 现在两个 job 全绿。

这个文件很容易被反复误删(它是空文件、目录里其他内容都被忽略)。要更稳的话,可以在 CI 里加一条断言 git ls-files frontend/dist/.keep 非空——不过 go vet 本身已经会在它缺失时失败,现在有 CI 就能兜住了。

@yujiezhang-ops
yujiezhang-ops merged commit 49b6257 into main Aug 4, 2026
2 checks passed
@yujiezhang-ops
yujiezhang-ops deleted the chore/license-and-doc-hygiene branch August 4, 2026 12:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant